Double error correcting system in digital signal reproducing apparatus

ABSTRACT

A double error correcting system is used in a digital signal reproducing apparatus, which is capable of correcting errors in two information vectors (information words) among a plurality of information vectors within one block by use of elements in a small number of correcting matrices and by using a memory device having a small memory capacity. A register is not required for temporarily storing the operational result obtained half-way between a plurality of performed operations. Instead, corrected information vectors are obtained from a memory circuit.

BACKGROUND OF THE INVENTION

The present invention relates generally to double error correcting systems in digital signal reproducing apparatuses, and more particularly to a double error correcting system in a digital signal reproducing apparatus, which is capable of correcting errors in two information vectors (information words) among a plurality of information vectors within one block, by use of few number of elements (correcting matrix data) of a correcting matrix, upon detection of two vector (word) errors within one block by using error pointers of adjacent codes during reproduction of digital signals which are transmitted in units of blocks.

Digital signal recording and/or reproducing systems have been recently developed for recording digital signals obtained by digitally modulating sound signals and the like by use of such modulation methods as pulse code modulation (PCM), onto magnetic tapes and discs, and reproducing the digital signals thus recorded. Magnetic recording and/or reproducing apparatuses (VTRs) and disc recording and/or reproducing apparatuses are used in the above recording and reproduction of digital signals, since the occupied bandwidth of the digital signals is wide, however, in this type of a high density recording and/or reproducing system, a plurality of errors are generated in the codes of the digital signals due to scratches and dust particles on the recording medium, dropout of information, jitter, noise, fluctuation in the reproduction level, interferences between codes, and the like. There are two kinds of errors introduced in the digital signal codes, mainly, random errors which are generated in a random manner, and burst errors which are generated in a burst manner, and various code correcting methods have been presented for each of the above kinds of errors.

In a conventional double error correcting system (a system for correcting errors of two or more words) using error pointers of adjacent codes, complex matrix operations are necessary upon correcting double errors. Accordingly, in this type of a conventional system, the elements of the matrices are calculated in advance and stored in a memory device such as a read-only-memory (ROM), and these elements of the matrices are read out and used upon necessity. However, when a ROM device is used, an address counter is required for selectively reading out of the information from the ROM device, and the circuit construction of the error correcting apparatus becomes complex. Furthermore, in a case where the number of elements (the number of bits in one word) in one vector is large, when the number of bits in one word is fourteen and the number of words of digital signals within one block is six, for example, the required minimum memory capacity of the ROM device becomes 980 (=14×14×5). However, since the memory capacity of most ROM devices is 2^(N) (N is an integer greater than zero), a plurality of these ROM devices must be used, and the conventional devices were disadvatageous in that the cost of the error correcting apparatus became high.

SUMMARY OF THE INVENTION

Accordingly, a general object of the present invention is to provide a novel and useful double error correcting system in digital signal reproducing apparatus, in which the above described problems have been overcome.

Another and more specific object of the present invention is to provide a double error correcting system in a digital signal reproducing apparatus, which is capable of correcting errors in two information vectors (information words) among a plurality of information vectors within one block by use of elements in a small number of correcting matrices, by using a memory device having a small memory capacity.

Still another object of the present invention is to provide a double error correcting system in a digital signal reproducing apparatus, in which a register for temporarily storing the operational result obtained half-way between a plurality of operations performed is not required, by obtaining corrected information vectors from a memory circuit, and the circuit construction is simplified.

Other objects and further features of the present invention will be apparent from the following detailed description when read in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a systematic block diagram showing an example of a conventional double error correcting system in digital signal reproducing apparatus;

FIG. 2 is a systematic block diagram showing a first embodiment of a double error correcting system according to the present invention;

FIG. 3 is a circuit diagram showing an embodiment of an essential part of the block system shown in FIG. 2;

FIG. 4 is a circuit diagram showing an embodiment of another essential part of the block system shown in FIG. 2;

FIG. 5 is a systematic block diagram showing a second embodiment of a double error correcting system according to the present invention;

FIG. 6 is a circuit diagram showing an embodiment of an essential part of the block system shown in FIG. 5;

FIG. 7 is a circuit diagram showing an embodiment of a circuit which can be used instead of a linear transformation circuit in the system according to the present invention;

FIG. 8 is a systematic block diagram showing a third embodiment of a double error correcting system according to the present invention;

FIG. 9 is a systematic block diagram showing a fourth embodiment of a double error correcting system according to the present invention;

FIG. 10 is a systematic block diagram showing a fifth embodiment of a double error correcting system according to the present invention;

FIG. 11 is a systematic block diagram showing an example of an essential part of the conventional system which corresponds to the system of the present invention shown in FIG. 10;

FIG. 12 is a systematic block diagram showing a sixth embodiment of a double error correcting system according to the present invention;

FIG. 13 is a circuit diagram showing an embodiment of an essential part of the system according to the present invention;

FIG. 14 is a circuit diagram showing an embodiment of another essential part of the system according to the present invention;

FIG. 15 is a circuit diagram showing an embodiment of still another essential part of the system according to the present invention; and

FIG. 16 is a systematic block diagram showing a seventh embodiment of a double error correcting system according to the present invention.

DETAILED DESCRIPTION

Since the present invention relates to an apparatus for performing adjacent code correction in which two erroneous vectors are corrected among a plurality of vectors constituting one block, by using error pointers which indicate which vectors (words) are in error, a general description will now be given on the adjacent code correction.

In an adjacent code double error correction, each of m-bit (m is an integer greater than zero) information vectors (also called information words) W₁, W₂, W₃, - - - , W_(n) (n is an integer) having elements "0" and "1", and two error correcting vectors (also called error correcting words) P and Q which are column vectors and obtained by equations which will be described hereinafter, are used to form blocks, to transmit digital signals in units of these blocks. Correction is performed when errors are detected in two vectors within one block upon receipt of these digital signals by use of error pointers which indicate which vectors are in error. The above error correcting vectors P and Q can be described by the following equations (1) and (2). ##EQU1##

    Q=T.sup.n ·W.sub.1 ⊕T.sup.n-1 ·W.sub.2 ⊕ . . . ⊕T·W.sub.n                                   (2)

    (or T·W.sub.1 ⊕T.sup.2 ·W.sub.2 ⊕ . . . ⊕T.sup.n ·W.sub.n)

In the above equations (1) and (2), the symbol "Σ" indicates the total sum of vectors in GF(2) (GF(2) indicates a finite field comprising two elements), "⊕" indicates an addition of vectors in GF(2), and "T" is a regular linear transformation matrix which is linearly independent from a unit matrix I. The matrix T indicates a companion matrix, for example, of a polynomial 1+g₁ x+g₂ x² + . . . +x^(m) (m is an integer).

This companion matrix T becomes as follows when the m-order polynomial in GF(2) is G(x)=x^(m) +g_(m-1) x^(m-1) + . . . +g₁ x+g₀ ##EQU2## The above companion matrix T is defined in the following manner.

That is, by respectively defining the column vectors A and B each having m elements by A=(a₁, a₂, . . . , a_(m))^(t) and B=(b₁, b₂, . . . , b_(m))^(t) where t indicates a transpose of a matrix, the following equations are obtained when these vectors A and B are equated to polynomials ##EQU3## and the result of x·A(x)÷G(x) is assumed to be B(x).

    B(x)=xA(x)⊖a.sub.m ·G.sub.x =x·A(x)⊖a.sub.m ·G(x)

In the above equation, "⊕" and "⊖" respectively indicate addition and subtraction between polynomials in GF(2).

Accordingly, the following equation can be formed. ##EQU4##

Thus, from the above equation, b₁ =a_(m) ·g₀, b₂ =a₁ ⊕a_(m) g₁, . . . , b_(m) =a_(m-1) ⊕a_(m) g_(m-1), and when these equations are transformed into matrix form, the following matrix equation is formed. ##EQU5##

Therefore, the equation B=T·A stands. Moreover, since the matrix T must be regular, g₀ must be equal to "1". This is due to the fact that when g₀ is equal to "0", the first row of the above companion matrix T all become "0", and the companion matrix T does not become a regular matrix.

From the above, the polynomial becomes G(x)=x^(m) +g_(m-1) x^(m-1) + . . . +g₁ x+1, however, since the condition upon correction is that a matrix (I⊕T^(-k))⁻¹ (I indicates an m by m unit matrix) exists as will be described hereinafter, the matrix (I⊕T^(-k)) must be regular, and the unit matrix I and the matrix T^(-k) thus must respectively be linearly independent matrices. Accordingly, the condition on the polynomial G(x) is that at least one of the coefficients g_(m-1) through g₁ is not "0", and that T, T², - - - , T^(n-1) respectively are linearly independent of the matrix I.

Returning to equations (1) and (2), the following equation (3) can be obtained by rewriting these equations (1) and (2).

    P⊕W.sub.1 ⊕W.sub.2 ⊕ . . . ⊕W.sub.n =φ

    Q⊕T.sup.n ·W.sub.1 ⊕T.sup.n-1 ·W.sub.2 ⊕ . . . ⊕T·W.sub.n =φ                          (3)

    (or Q⊕T·W.sub.1 ⊕T.sup.2 ·W.sub.2 ⊕ . . . ⊕T.sup.n ·W.sub.n =φ)

Therefore, this equation (3) stands when no error exist. In the above equation (3), "φ" indicates a column vector in which m elements are all "0".

However, in a case where two information vectors, mainly, the i-th information vector W_(i) and the j-th information vector W_(j), are in error, and become equal to w_(i) and w_(j) as shown in equation (4), the above equation (3) becomes equivalent to the following equation (5). ##EQU6## (E_(i) and E_(j) indicate erroneous vectors, where i and j are integers) ##EQU7## In the above equation (5), terms S₁ and S₂ respectively indicate partial syndromes. Hence, the above described erroneous vectors E_(i) and E_(j) can be described by the following equation (6) by using the partial syndromes S₁ and S₂. ##EQU8## Accordingly, by calculating the partial syndromes S₁ and S₂ from the equation (6), and substituting the values obtained into equation (4), the correct i-th information vector W_(i) and the correct j-th information vector W_(j) can respectively be calculated and restored.

In the above, the erroneous information vectors were added when obtaining the partial syndromes S₁ and S₂ in equation (5). However, when the erroneous information vectors are assumed to be zero vectors and added (the result is the same as that when nothing is added), the partial syndromes S'₁ and S'₂ respectively become as shown in the following equations (7) and (8). ##EQU9## From these equations (7) and (8), the following equations (9) and (10) can be calculated, and by performing similar operations as those used in calculating the erroneous vectors E_(i) and E_(j), the i-th information vector W_(i) and the j-th information vector W_(j) can respectively be calculated directly.

    (I⊕T.sup.i-j)·W.sub.j =S'.sub.1 ⊕T.sup.i-n-1 ·S'.sub.2 =S.sub.0                               (9) ##EQU10## Furthermore, when the information vectors W.sub.1 through W.sub.n and the error correcting vectors P and Q are respectively of m elements (m bits), the matrices (I⊕T.sup.i-j).sup.-1 or (I⊕T.sup.j-i).sup.-1 become m by m matrices.

Moreover, when the error correcting vectors P and Q are generated from the following equation (11), the partial syndromes S₁ and S₂ are respectively defined as follows when the information vectors W_(i) and W_(j) are detected as being in error. ##EQU11##

The partial syndromes S₁ and S₂ can be obtained by multiplying T^(G).sbsp.k, T^(H).sbsp.k and the like with vectors W₁ through P or W₁ through Q, among the information vectors W₁ through W_(n) and error correcting vectors P and Q excluding the vectors W_(i) and W_(j) the error pointers are indicating.

    S.sub.1 =T.sup.G ·W.sub.1 ⊕ . . . ⊕φ⊕ . . . ⊕φ⊕ . . . ⊕P

    S.sub.2 =T.sup.H ·W.sub.1 ⊕ . . . ⊕φ⊕ . . . ⊕φ⊕ . . . ⊕Q

In the above equations, "φ" are parts of the vectors W_(i) and W_(j), and the vectors W_(i) and W_(j) can be corrected and restored in the following manner.

    T.sup.-G.sbsp.i ·S.sub.1 =W.sub.i ⊕T.sup.G.sbsp.j.sup.-G.sbsp.i ·W.sub.j       (12)

    W.sub.i =T.sup.-H.sbsp.i ·S.sub.2 ⊕T.sup.H.sbsp.j.sup.-H.sbsp.i ·W.sub.j       (13)

By substituting equation (13) into equation (12),

    T.sup.-G.sbsp.s ·S.sub.1 =T.sup.-H.sbsp.i ·S.sub.2 ⊕(T.sup.G.sbsp.j.sup.-G.sbsp.i ⊕T.sup.H.sbsp.j.sup.-H.sbsp.i)·W.sub.j

    W.sub.j =(T.sup.G.sbsp.j.sup.-G.sbsp.i ⊕T.sup.H.sbsp.j.sup.-H.sbsp.i).sup.-1 ·(T.sup.-G.sbsp.i ·S.sub.1 ⊕T.sup.-H.sbsp.i ·S.sub.2) (14)

By defining (T^(G).sbsp.j^(-G).sbsp.i ⊕T^(H).sbsp.j^(-H).sbsp.i) in equation (14) as a matrix M_(G).sbsb.j_(-G).sbsb.i, and defining the vector (T^(-G).sbsp.i ·S₁ ⊕T^(-H).sbsp.i ·S₂) as S₀, the vector W_(j) can be obtained by multiplying the matrix M_(G).sbsb.j_(-G).sbsb.i with the column vector S₀ by using equation (14), and the vector W_(i) can be calculated from the following equation (15).

    W.sub.i =T.sup.-G.sbsp.i ·S.sub.1 ⊕T.sup.G.sbsp.j.sup.-G.sbsp.i ·W.sub.j       (15)

In the present specification, however, description will be given in a case where the error correcting vectors P and Q are generated by use of equation (3), to simplify the description.

Next, the method for generating error pointers will be described. As one method for generating the error pointers, the envelopes of the signals (PCM signals which are modulated by systems such as NRZ and MFM) corresponding to each vector are detected upon reception of each vector of the information vectors W₁ through W_(n) and the error correcting vectors P and Q, and the error pointers are obtained by assuming the received vector to be an erroneous vector when the signal level deviates from a predetermined level. A second method for generating the error pointers is to separate and arrange each vector in the information vectors W₁ through W_(n) and the error correcting vectors P and Q, within (n+2) differing block signals, to obtain error pointers by assuming the vectors within the erroneous block to be in error, by adding error detecting vectors such as CRCC for each block upon transmission, and performing error detection in units of blocks upon reception.

The above described adjacent code correction using error pointers, were conventionally performed by use of a circuit shown in FIG. 1. In FIG. 1, the information vectors W₁ through W_(n) and the error correcting vectors P and Q are respectively and successively supplied to a partial syndrome S₁ generating circuit 12 and a multiplying circuit 13 which multiplies T^(-n-1) to the signal supplied thereto, through an input terminal 11. This partial syndrome S₁ generating circuit 12 is a circuit for calculating the partial syndrome S'₁ in equation (7). In the example shown in FIG. 1, the operation is performed in a parallel manner, and the generating circuit 12 is constructed from m exclusive-OR circuits and m registers. Thus, when a correcting operation is to be performed on a following block before the correcting operation on a preceding block is completed, a parallel output (W_(i) ⊕W_(j)) is temporarily stored into a register 14 before the calculation of the partial syndrome S'₁ of the following block is started.

On the other hand, the input signal supplied to the input terminal 11 is multiplied by T^(-n-1) at the multiplying circuit 13 which is constructed from exclusive-OR circuits, and then applied to a circuit 15 for generating a deformed partial syndrome S₂ (referred to as a partial syndrome S₂ generating circuit from hereinafter). The generating circuit 15 is constructed from m registers (edge trigger type flip-flops) and (m+1) or more exclusive-OR circuits. When the flip-flop (register) is initially in a cleared state, the parallel input is obtained as it is upon reception of the first clock pulse CK, and the first vector is multiplied by T upon reception of the following clock pulse CK, to add the parallel input vectors. As a result, the relationship between the signal at the input terminal 11, the output of the multiplying circuit 13, and the output of the generating circuit 15 becomes as shown in the following table.

                  TABLE                                                            ______________________________________                                         Output                                                                         of input                                                                               Output of multi-                                                                           Output of gene-                                            terminal 11                                                                            plying circuit 13                                                                          rating circuit 15                                          ______________________________________                                         W.sub.1 T.sup.-n-1 · W.sub.1                                                              T.sup.-n-1 · W.sub.1                              W.sub.2 T.sup.-n-1 · W.sub.2                                                              T.sup.-n-1 · (T · W.sub.1 ⊕                              W.sub.2)                                                   W.sub.3 T.sup.-n-1 · W.sub.3                                                              T.sup.-n-1 · (T.sup.2 · W.sub.1                              ⊕ T · W.sub.2 ⊕ W.sub.3)                  .       .                .                                                     .       .                .                                                     .       .                .                                                     W.sub.n T.sup.-n-1 · W.sub.n                                                              T.sup.-n-1 · (T.sup.n-1 · W.sub.1                            ⊕ . . . ⊕W.sub.n)                                  P       T.sup.-n-1 · P                                                                    T.sup.-n-1 · (T.sup.n-1 · W.sub.1                            ⊕ . . . ⊕W.sub.n)                                  Q       T.sup.-n-1 · Q                                                                    T.sup.-n-1 · (T.sup.n · W.sub.1                              ⊕ . . . ⊕Q) =                                                          T.sup.-n-1 · S.sub.2                              ______________________________________                                    

Moreover, during the time the error correcting vector P is supplied as input, the clock pulse CK is not applied to the generating circuit 15, and thus, the output of the generating circuit 15 does not vary.

Next, when i clock pulses are applied to the generating circuit 15 shown in FIG. 1 respective to the errors in the vectors W_(i) and W_(j), and when the signal at the input terminal is set at φ, the output of the generating circuit 51 becomes as follows.

    T.sup.i ·T.sup.-n-1 ·S'.sub.2 =T.sup.i-n-1 ·S'.sub.2

This output thus obtained, is applied to an adder 16 wherein the output thus applied is added to the output S'₁ of the generating circuit 12. Accordingly, the following result can be calculated.

    S.sub.0 =S'.sub.1 ⊕S.sup.i-n-1 ·S'.sub.2

In a case where the correcting operation is to be started on a following block before the correcting operation on a preceding block is completed, the output S₀ of this adder 16 is temporarily stored within a register 17, and then applied to an AND circuit 18 wherein the multiplication of S₀ and a matrix (I⊕T^(i-j))⁻¹ which is respective of the erroneous vectors W_(i) and W_(j), is performed.

On the other hand, each data of the m by m matrix (I⊕T^(-k))⁻¹ =M_(k) (k=k-i) is calculated in advance, and the calculated result is stored within a memory device (a ROM device, for example) 20, and a matrix M_(k) (k is an integer) of the matrices M₁ through M_(n-1) is selected by a control circuit 19a. Furthermore, the first through the m-th row of the matrix M_(k) are successively selected by a control circuit 19b. Hence, the output (I⊕T^(i-j))⁻¹ of the memory device 20 which is controlled by the control circuits 19a and 19b, and the output (S'₁ ⊕T^(i-n-1) ·S'₂) of the register 17, are respectively multiplied in terms of bits at the AND circuit 18, and an addition of GF(2) is performed in an adder 21. Accordingly, each element of the information vector W_(j) which is calculated at the adder 21 according to equation (9), is successively produced as an output serial signal according to the selection of rows in the matrix M_(k). This serial signal undergoes a serial-to-parallel conversion at a shift register 22, and then applied to one terminal of an adder 23.

The data (W_(i) ⊕W_(j)) which is stored within the register 14 is applied to the other terminal of the adder 23, and the information vector W_(i) which is calculated in accordance with the equation W_(i) ⊕W_(j) ⊕W_(j) =W_(i) is produced as output from the adder 23. In addition, a zero vector is applied to the adder 23 from the shift register 22, by clearing the register 14 after completion of a predetermined transmission of the vector W_(i) (or by clearing the generating circuit 15 in a case where the correction of a following block is performed after the correction of the preceding block is completed, since the registers 14 and 17 are not required in this case). Thus, the corrected and restored vector W_(j) which is applied to the other input terminal of the adder 23, is supplied as it is from the output terminal of the adder 23.

As described above, in the conventional double error correcting system, all the elements of the matrix M_(k) =(I⊕T^(-k))⁻¹ were stored into the memory device 20, however, since the matrix M_(k) is an m by m matrix, and furthermore because k=j-i, the maximum value of k becomes five in a case where the above described vectors W₁ through W_(n) and P and Q respectively are fourteen bits, and n=6. Therefore, the required minimum memory capacity of the memory device 20 becomes 980 (=14×14×5). However, the memory capacity of most ROM devices is 2^(N) where N is an integer, and thus, a ROM device having an increased memory capacity must then be used. Furthermore, the cost of ROM devices is high compared with that of logic elements, and since the control circuits 19a and 19b shown in FIG. 1 are required, the conventional system was disadvantageous in that the cost of the system became high.

Furthermore, in the conventional system, the corrected data is directly transmitted to a digital-to-analog (D/A) converter (not shown), and thus, it is difficult to finish all the operations immediately when the need arises from the D/A converter. Accordingly, it was necessary to store the intermediate operational results in the registers 14 and 17.

The present invention provides an error correcting system in which the memory capacity of the memory device is small, and the registers 14 and 17 in the above described conventional system are not required, by performing corrections according to the correcting operation which will be described in the following.

First, description will be given on the correcting operation method which is used in the system of the present invention. Returning to the calculating stage of the equations (6) and (10), the following relationship exists between the vector W_(j) and the intermediate calculated vector S₀ (=S'₁ ⊕T^(i-n-1) ·S'₂).

    (I⊕T.sup.-k)·W.sub.j =S.sub.0                 (16)

In the above equation (16), -k=i-j. Moreover, when (I⊕T^(-k))⁻¹ is multiplied to the above equation (16), equation (10) can be obtained. The equation (10) can also be described in the following manner.

    W.sub.j =(I⊕T.sup.-k).sup.-1 ·S.sub.0         (17)

Next, the m by m matrix (I⊕T^(-k))⁻¹ is considered in the following manner.

    (I⊕T.sup.-k).sup.-1 =M.sub.k =[M.sub.k1 M.sub.k2 . . . M.sub.km ].sup.t (18)

That is, the m by m matrix M_(k) is separated into m row matrices M_(k1) through M_(km) respectively having m elements.

When W_(j) =(a₁, a₂, . . . , a_(m))^(t), the l-th row matrix M_(kl) can be described by equation (19), and the l-th element a_(l) can be calculated.

    M.sub.kl ·S.sub.0 =a.sub.l                        (19)

In a first embodiment of an error correcting system according to the present invention, the correcting operation is performed by selectively using one row matrix of (n-1) kinds of row matrices M_(1d), M_(2d), - - - , M_(n-1),d according to the value of i-j=-k. These (n-1) kinds of row matrices M_(1d), M_(2d), - - - , M_(n-1),d are row matrices M_(kd) respectively having e₁ through e_(m) as the elements of GF(2), wherein k is 1 to (n-1) in the following equation (20) which describes the first order combination row matrices M_(k1) through M_(km).

    M.sub.kd =e.sub.1 ·M.sub.k1 ⊕e.sub.2 ·M.sub.k2 ⊕ . . . ⊕e.sub.m ·M.sub.km                     (20)

In the above equation (20), at least one of the elements e₁ through e_(m) is not "0".

Description will now be given on a matrix M_(kl) which is selected arbitrarily. The correcting operation performed by use of the matrix M_(kd) is a linear combination of each of the correcting operations performed by respective matrices M_(kl), where l=1, - - - , m. Furthermore, since the matrix M_(k) is a regular m by m matrix, and the row matrices M_(k1) through M_(km) respectively are first order independent, the arbitrarily formed matrix (excluding a zero matrix) having m elements, can be described by the first order combination of the matrices M_(k1) through M_(km), that is, by the above equation (20). Accordingly, one matrix among the (n-1) matrices M_(kd), can be any row matrix having m elements excluding a zero matrix. Moreover, in the above equation (20), the elements e₁ through e_(m) are elements of GF(2), and are "0" or "1".

In the present invention, when m integers are designated by L₁, L₂, - - - , L_(m), the correcting operation can be performed by using T^(L).sbsp.1 S₀, T^(L).sbsp.2 S₀, . . . , T^(L).sbsp.m S₀ and M_(kl). Accordingly, it will be first shown that this correcting operation can be performed by use of the above matrices, and then, description will be given with respect to the matrix M_(kd).

When T^(L) is multiplied to both sides of the equation (16), where L indicates an arbitrary integer,

    T.sup.L ·(I⊕T.sup.-k)·W.sub.j =T.sup.L ·S.sub.0                                         (21)

However, since ##EQU12## equation (16) becomes as follows.

    (I⊕T.sup.-k)·T.sup.L ·W.sub.j =T.sup.L ·S.sub.0                                         (22)

It is assumed that the l-th row matrix _(L) T_(l) of T^(L) is described by the following equation.

    .sub.L T.sub.l =(.sub.L T.sub.l1, .sub.L t.sub.l2, . . . , .sub.L t.sub.lm)

The l-th element _(L) T_(l) ·W_(j) of T^(L) ·W_(j) can be calculated instead of the l-th element a_(l) of W_(j) which is indicated by the equation (19). That is when W_(j) =(a₁, a₂, . . . , a_(m))^(t), and T^(L) ·W_(j) =(_(L) a₁, _(L) a₂, . . . , _(L) a_(m))^(t), the following equation is obtained.

    M.sub.kl ·(T.sup.L ·S.sub.0)=.sub.L a.sub.l =.sub.L T.sub.l ·W.sub.j =.sub.L t.sub.l1 ·a.sub.1 ⊕.sub.L t.sub.l2 ·a.sub.2 ⊕ . . . ⊕.sub.L t.sub.lm ·a.sub.m                                         (23)

Accordingly, the vector W'_(j) obtained by multiplying T^(L).sbsp.1 ·S₀, T^(L).sbsp.2 ·S₀, . . . by M_(kl), can be described by the following. ##EQU13## By transforming equation (24) into a matrix form, the following equations (25) and (26) can be obtained.

    W'.sub.j =.sub.l T'·W.sub.j                       (25) ##EQU14## Therefore, the vector W.sub.j can be obtained by calculating the following equation (27).

    W.sub.j =.sub.l T'.sup.-1 ·W'.sub.j               (27)

In order that the matrix _(l) T'⁻¹ can be obtained, the matrix _(l) T' must be regular, however, when T^(L).sbsp.1, T^(L).sbsp.2, . . . T^(L).sbsp.m are linearly independent, the matrix _(l) T' becomes regular.

Next, it is assured that a vector obtained by using M_(kd) =e₁ ·M_(k1) ⊕ . . . ⊕e_(m) ·M_(km), instead of the arbitrarily selected matrix M_(kl), is designated by W"_(j) and defined as W"_(j) =(a"₁, a"₂, . . . , a"_(m)). The following equation (28) can be formed as a first order combination of the equation (23) when l=1, - - - , m. ##EQU15## Thus the information vector W_(j) can be obtained from ₀ T'⁻¹ W"_(j) The regularity of ₀ T' is similar to that for the above described _(l) T'. Furthermore, _(l) T'⁻¹ or ₀ ^(T') ⁻¹ is a matrix which is independent of k. Accordingly, the control circuits which were necessary in conventional system become unnecessary, and the system of the invention can be constructed relatively simply by use of only the exclusive-OR circuits. Hence, the circuit construction can be simplified by selecting the matrix M_(kd) (a simple construction as a whole can be selected by use of (n-1) matrices M_(kd) and ₀ T'⁻¹).

FIG. 2 shows a block system of a first embodiment of an error correcting system according to the present invention, which uses the above described error correcting method. In FIG. 2, those parts which are the same as those corresponding parts in FIG. 1 are designated by the like reference numerals, and their description will be omitted. The output column vector S₀ obtained from the adder 16, is supplied to a multiplying circuit 24 wherein the output column vector S₀ is multiplied by T^(L). Accordingly, the output described by

    S.sub.0, T.sup.L ·S.sub.0, T.sup.2L ·S.sub.0, T.sup.3L ·S.sub.0, . . . , T.sup.(m-1)L ·S.sub.0

    or T.sup.L ·S.sub.0, T.sup.2L ·S.sub.0, . . . , T.sup.mL ·S.sub.0

is supplied to an AND circuit 28. The above multiplier 24 is generally constructed as shown in FIG. 3, wherein m registers 32₁ through 32_(m) which is equal to the number of elements in the information vector, and a plurality of exclusive-OR circuits 33₁ through 33_(m) are provided. The multiplying circuit 24 multiplies T^(L) to the vectors which are stored within the registers 32₁ through 32_(m), every time one clock pulse is applied to an input terminal 34.

On the other hand, a memory device 26 shown in FIG. 2 is a memory device comprising ROM devices or decoders, which selectively produces first order combination row matrices M_(kd) of a row matrix formed from the m-th row of an m by m matrix (I⊕T^(i-j))⁻¹, according to the value of i-j (=-k). As described above, arbitrary first order combination row matrices M_(kd) excluding a zero matrix, of the matrices M_(k1) through M_(km) in the equation (18), that is, ##EQU16## are stored in the memory device 26. A row matrix M_(kd) is selected under the control of a control circuit 25 according to the value of i-j=-k. This matrix M_(kd) thus selected is supplied to an inner product operating circuit 27 comprising the AND circuit 28 and an adder 29, wherein the inner product between the matrix M_(kd) and the parallel outputs S₀, T^(L) ·S₀, T^(2L) ·S₀, . . . , T.sup.(m-1)L ·S₀ of the multiplying circuit 24 are calculated.

The inner product operating circuit 27 comprises a group of AND gates and a group of exclusive-OR circuits as shown in FIG. 4. Each element of the linearly transformed vector W"_(j) of the information vector W_(j), is successively and serially supplied to a shift register 30, and these elements are stored in the shift register 30 in synchronism with the clock pulses supplied from the terminal 34.

The reason for correcting two erroneous words in a serial manner instead of performing the correction in a parallel manner in adjacent code correction, will now be described. The vector W_(j) can be calculated in a parallel manner from the equation M_(k) ·S₀ =W_(j), when there is a number of exclusive-OR circuits, where the number of the exclusive-OR circuits equals the number obtained when m is subtracted from the number of elements of the matrix M_(k) having m² elements, which are not "0", that is, which are "1". However, since there is a plurality of the matrices M_(k), the contents of the matrices M_(k) must be changed over in order to perform operations on all the matrices M_(k). Accordingly, in order to perform the above operations, the operational circuit must have m(m-1) exclusive-OR circuits, m² AND circuits, and m² m² -bit memory devices for controlling the m² AND circuits. Moreover, the scale of the above operational circuit becomes large, since m² bits must be produced in a parallel manner. In addition, when the value of m² becomes larger than nine, there are no ROM devices at the present which can produce m² bits, that is, eighty-one bits, in a parallel manner. Therefore, in order to realize the above memory device which can produce m² bits in a parallel manner, a ROM device having m² x(n-1) bits and a register which can produce m² bits in a parallel manner, are used simultaneously, and control circuits for controlling these devices accordingly become necessary. When the value of m is fourteen, for example, in addition to the ROM device which is originally required, a register for accommodating m² bits, that is, 196 bits, a control circuit for controlling this register, 182 exclusive-OR circuits, and 196 AND circuits become necessary, and this of course is not practical. Accordingly, in general, the double error correcting operation using error pointers of adjacent codes, is performed in a serial manner instead of performing the operation in a parallel manner.

W'_(j) or W"_(j) is a linear transformation of the information vector W_(j) which is obtained through a serial-to-parallel conversion performed at the shift register 30. This W'_(j) or W"_(j) is supplied to a linear transformation circuit 31 which multiplies _(l) T'⁻¹ or ₀ T'⁻¹ with the input thus supplied. Thus an m by m linear transformation is performed at this linear transformation circuit 31, to respectively correct and restore each element of the information vector W_(j), and these corrected and restored elements are produced as output in a parallel manner.

The above described linear transformation circuit 31 is of a simple construction, comprising exclusive-OR circuits as shown in FIG. 14. That is, since the parallel output W"_(j) of the shift register 30 is (a"₁, a"₂, - - - , a"_(m)), in a case where a predetermined information vector W_(j) =(a₁, a₂, - - - , a"_(m))^(t) is to be obtained, the following equations can be formed when the matrix ₀ T'⁻¹ =[Z₁, Z₂, . . . , Z_(m) ]^(t) and Z₁ through Z_(m) are assumed to be row matrices. ##EQU17## The linear transformation circuit 31 performs the above matrix operations. When K (K is an integer) elements of the m elements of the row matrix Z_(l), which are not "0", that is, which are "1", exist, only the term z_(li) =1 (i=1, - - - ,m) of the equation

    a.sub.l =z.sub.l1 ·a".sub.1 ⊕z.sub.l2 ·a".sub.2 ⊕ . . . ⊕z.sub.lm ·a".sub.m

need to be calculated, in order to obtain a_(l) =Z_(l) ·W"_(j). Therefore, when the i which satisfy equation z_(li) =1 are designated by i₁, i₂, - - - , i_(K), the equation a_(l) =Z_(l) ·W"_(j) can be obtained by calculating the following equation.

    a.sub.l =a".sub.li1 ⊕a".sub.li2 ⊕a".sub.li3 ⊕ . . . ⊕a".sub.liK

Thus, a_(l) can be calculated by using (K-1) exclusive-OR circuits. Similarly, a₁ through a_(m) can also be obtained by use of a number of exclusive-OR circuits, where the number of exclusive-OR circuits equals a number obtained by subtracting one from the number of elements in ach of Z₁ through Z_(m) which are "1". Since ₀ T'⁻¹ is regular, each of Z₁ through Z_(m) has at least one element which is "1". When the number of m by m elements of Z which are "1" is designated by K_(M), the number of exclusive-OR circuit required to perform the above described matrix operation becomes (K_(M) -m).

A block system of a second embodiment of an error correcting system according to the present invention is shown in FIG. 5. In FIG. 5, those parts which are the same as those corresponding parts in FIG. 2 are designated by the like reference numerals, and their description will be omitted. The present embodiment of the invention shows a case where m=14 and n=6. Accordingly, the linear transformation matrix T can be shown as follows, since the matrix T is a companion matrix of the polynomial x¹⁴ +x⁸ +1. ##EQU18## Therefore, the 5 (=n-1) kinds of inverse matrices become as shown in the following. ##EQU19##

A multiplying circuit 13a is a circuit for multiplying T⁻⁷, and comprises seven exclusive-OR circuits. T^(i-7) ·S'₂ which is produced by the generating circuit 15, is added with the output S'₁ of the generating circuit 12 at the adder 16. Accordingly, S₀ =S'₁ ⊕T^(i-7) ·S'₂ is obtained, and then applied to a multiplying circuit 24a. This multiplying circuit 24a is constructed as shown in FIG. 6. First, each register 1 through 14 (14-bit) shown in FIG. 6 is in a cleared state, and when S₀ is obtained as input through the group of AND gates by closing a terminal 35, and one clock pulse CK is applied to a terminal 36, S₀ is accordingly stored within the registers of the multiplying circuit 24a.

Next, when the terminal 35 is opened to interrupt S₀ from being supplied, and when the clock pulse CK is successively applied to the terminal 36, the matrix T is successively and repetitively multiplied. Accordingly, S₀, T·S₀, T² ·S₀, - - - , T¹³ ·S₀ are successively obtained in a parallel manner from the output terminal according to the number of clock pulses CK.

On the other hand, W_(j), T·W_(j), - - - , T¹³ ·W_(j) become as follows. ##EQU20##

Thus, when M_(k1) is selected as M_(kd), that is, when the first rows which are M₁₁, M₂₁, M₃₁, M₄₁, and M₅₁, of M₁ through M₅ are used, these first rows can be described by the following.

    ______________________________________                                                 M.sub.11 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1                                         M.sub.21 = 1 0 1 0 1 0 1 0 1 0 1 0 1 0                                         M.sub.31 = 1 0 0 1 0 0 1 0 0 1 0 0 1 0                                         M.sub.41 = 0 0 1 0 0 0 1 0 0 0 1 0 0 0                                         M.sub.51 = 0 1 1 0 1 0 1 1 0 1 0 1 1 0                                 ______________________________________                                    

These row matrices M₁₁ through M₅₁ are selected and produced from a memory device 26a shown in FIG. 5 according to the value of k. The inner product between S₀ through T¹³ ·S₀ which are successively produced from the multiplying circuit 24a and the above row matrices M₁₁ through M₅₁ are calculated by on AND circuit 28a and an adder 29a. Hence, the linear transformation vector W"_(j) thus obtained, is a vector which has the first rows of W_(j) through T¹³ ·W_(j), and the relationship between W"_(j) and ₁ T' can be described by the following equation.

    W".sub.j =.sub.1 T·W.sub.j

where ##EQU21## Accordingly, the operation ₁ T'⁻¹ of the linear transformation circuit 31, for obtaining the linear transformation vector W"_(j) and the information vector W_(j), becomes as follows. ##EQU22## The operation of this matrix ₁ T⁻¹ can be performed by use of seven exclusive-OR circuits.

Moreover, when M_(k8) is selected as M_(kd), that is, when the eighth rows M₁₈ through M₅₈ of M₁ through M₅ are used, these rows can be described by the following.

    ______________________________________                                         M.sub.18 = 0 0 0 0 0 0 0 1 1 1 1 1 1 1                                         M.sub.28 = 0 0 0 0 0 0 0 1 0 1 0 1 0 1                                         M.sub.38 = 0 0 0 0 0 0 0 1 0 0 1 0 0 1                                         M.sub.48 = 0 1 0 1 0 1 0 0 0 1 0 0 0 1                                         M.sub.58 = 0 1 1 1 1 0 1 0 1 1 0 1 0 1                                         ______________________________________                                    

The linear transformation vector W"_(j) obtained at the output side of the adder 29a when the above row matrix is selected and produced from the memory device 26a according to the value of k, becomes as follows in which the eighth rows of each W_(j) through T¹³ ·W_(j) are used.

    W".sub.j =[a.sub.8 a.sub.7 a.sub.6 a.sub.5 a.sub.4 a.sub.3 a.sub.2 a.sub.1 a.sub.14 a.sub.13 a.sub.12 a.sub.11 a.sub.10 a.sub.9 ].sup.t

Hence, the matrix operation ₈ T'⁻¹ used for obtaining the information vector W_(j) from the above vector W"_(j) becomes as shown below, due to the linear transformation circuit 31. ##EQU23## This operational circuit of ₈ T'⁻¹ can be realized by simply interchaning the wiring, and the exclusive-OR circuits are not required. Furthermore, a ROM device is not necessarily required for memorizing (storing) M₁₈ through M₅₈, and the above matrix operation can be realized by use of a decoder circuit having gates. The first and fourteenth rows in M₁₈ through M₅₈ do not change, and the second and fourth rows, and third, fifth, and seventh rows respectively are identical. Therefore, the above described matrix operation can be realized by use of a decoder which transforms a code describing k=1, - - - , 5 in three or more bits, for example, into a code comprising the remaining nine rows of M₁₈ through M₅₈, excluding the rows which do not change and the rows which are identical to another row.

Since the transformation relationship between W"_(j) and W_(j) in this example is regular and relative simple, W_(j) can also be obtained through the following transformation. That is, by using the fourteenth row matrices of M₁ through M₅, for example, ##EQU24## The circuit shown in FIG. 7 is inserted and connected between the adder 29a and the shift register 30 shown in FIG. 5, and the output of the adder 29a is applied to an input terminal 37 shown in FIG. 7. Thus, when a 6-bit shift register 39 is put into a cleared state, and the outputs a"₁, a"₂, - - - , of the adder 29a the clock pulses CK are successively applied to the shift register 39, a₁₄, a₁₃, a₁₂, - - - , a₁ are successively obtained from the output terminal of an exclusive-OR circuit 38.

A third embodiment of an error correcting system according to the present invention is shown in the systematic block diagram in FIG. 8. In FIG. 8, those parts which are the same as those corresponding parts in FIG. 5 is designated by the like reference numerals, and their description will be omitted. In FIG. 8, a data selector 40 selects and passes one of the three inputs supplied thereto, that is, the output S₁ of the generating circuit 12, each output words obtained by multiplying T⁻⁷ of the multiplying circuit 13a, or a zero vector, and applies the input thus selected to a multiplying circuit 24b. This multiplying circuit 24b has a construction in which fourteen AND circuits have been eliminated from the multiplying circuit 24a shown in FIG. 6. Accordingly, the 14-bit parallel input which has passed through the data selector 40, is directly applied to the exclusive-OR circuits indicated by "⊕" in FIG. 6.

When the data selector 40 selects and passes the output of the multiplying circuit 13a, for example, T^(i-8) ·S'₂ is calculated at the multiplying circuit in this case. However, when the data selector 40 later changes over to select an pass the output S'₁ of the generating circuit 12, S'₁ ⊕T^(i-7) ·S'₂, that is, S₀ is claculated at the multiplying circuit 24b. The data selector 40 later changes over to select and pass the zero vector (a general data selecting integrated circuit has a strobe function in addition to the selecting function in which one input is selected from two, four, or eight kinds of inputs, that is, a zero vector is produced as output when the strobe is turned OFF). Hence, the outputs S₀, T·S₀, - - - , T¹³ ·S₀ are produced in order from the multiplying circuit 24b. Therefore, according to the present embodiment of the invention, the circuit for multiplying T in order to calculate S₂, and the circuit for successively calculating S₀, T·S₀, - - - , T¹³ ·S₀ by repetitively multiplying T with S₀, can be used in common, by providing the data selector 40. The output of the multiplying circuit 24b is then subjected to similar signal processing operation as that performed in the systematic block diagram in FIG. 5, and thus, the correcting operation is accordingly performed.

Next, a fourth embodiment of an error correcting system according to the present invention in which serial outputs are obtained, will now be described in conjunction with FIG. 9. In FIG. 9, those parts which are the same as those corresponding parts in FIG. 8 will be designated by the like reference numerals, and their description will be omitted.

In FIG. 9, row matrices M₁₈ through M₅₈ are used, and the output of a multiplying circuit 24c is stored into a register 42 in a case where the correction of a following block is to be performed before the correction of a preceding block is finished. On the other hand, a register 41 stores the output S₁ of the generating circuit 12, and also stores the serial output supplied from the adder 29a. This means that the information vector W_(i) is first obtained serially as output from the register 41, and by storing the calculated information vector W_(j) supplied from the adder 29a, the information vector W_(j) is serially obtained as output from the register 41. However, it is necessary in this case to set a line 43 to "0". Furthermore, the arrangement of the elements in the output information vectors W_(i) and W_(j) are interchanged in this case (the arrangement is a₈ through a₁, and a₁₄ through a₉).

A fifth embodiment of an error correcting system according to the present invention will now be described in conjunction with FIG. 10, in which the error correcting vectors P and Q have been produced by use of the equation (11), and the error correcting vectors P and Q thus produced are received. In FIG. 10, the incoming information vectors W₁ through W_(n) which are applied to an input terminal (data bus) 32, and the error correcting vectors P and Q which are produced by use of the equation (11), are respectively supplied to multiplying circuits 45 and 47. These vectors thus supplied to the multiplying circuit 45 are produced as output in the form

    T.sup.G.sbsp.1.sup.-G.sbsp.i ·W.sub.1, T.sup.G.sbsp.2.sup.-G.sbsp.i ·W.sub.2, . . . , T.sup.G.sbsp.n.sup.-G.sbsp.i ·W.sub.n, T.sup.-G.sbsp.i ·P

according to the inputs W₁ through W_(n), and P and Q, from the multiplying circuit 45. On the other hand, outputs

    T.sup.H.sbsp.1.sup.-H.sbsp.i ·W.sub.1, T.sup.H.sbsp.2.sup.-H.sbsp.i ·W.sub.2, . . . , T.sup.H.sbsp.n.sup.-H.sbsp.i ·W.sub.n, T.sup.-H.sbsp.i ·Q

are produced from the multiplying circuit 47. These outputs of the multiplying circuits 45 and 47 are respectively applied to accumulating circuits 46 and 48, wherein the vectors thus supplied to these accumulating circuits are successively accumulated and the accumulation of the erroneous vectors W_(i) and W_(j) are not performed. Accordingly, T^(-G).sbsp.i ·S₁ and T^(-H).sbsp.i ·S₂ are obtained.

The multiplying circuits 45 and 47 can respectively be realized by use of fixed matrix multiplying circuits which are constructed from exclusive-OR circuits, where the fixed matrix multiplying circuits respectively obtain T^(-G).sbsp.max and T^(-H).sbsp.max wherein the maximum of G₁ through G_(n) and H₁ through H_(n) respectively are designated by G_(max) and H_(max), and a circuit as that shown in FIG. 6 which can multiply T⁰, T¹, - - - , T^(G).sbsp.max or T⁰, T¹, - - - , T^(H).sbsp.max according to the number of the clock pulses applied thereto. Furthermore, the accumulating circuits 46 and 48 can be realized by use of a circuit shown in FIG. 13.

The above outputs T^(-G).sbsp.i ·S₁ and T^(-H).sbsp.i ·S₂ are respectively added at an adder 49, and thus, S₀ =(T^(-G).sbsp.i ·S₁ ⊕T^(-H).sbsp.i ·S₂) is calculated. This S₀ thus obtained, is supplied to a multiplying circuit 50 for multiplying T^(L) (L is an integer other than zero). This multiplying circuit 50 has a circuit construction similar to that shown in FIG. 6. Accordingly, operations are repetitively performed in which T^(L) is successively multiplied to S₀, and the following result is successively obtained.

    S.sub.0, T.sup.L ·S.sub.0, T.sup.2L ·S.sub.0, - - - , T.sup.(m-1) ·S.sub.0

or

    T.sup.L ·S.sub.0, T.sup.2L ·S.sub.0, - - - , T.sup.mL ·S.sub.0

The above column vectors having m elements are supplied to an inner product operation circuit (matrix operation circuit) 51 which is constructed from AND circuits and exclusive-OR circuits. The inner product between the column vector having m elements, and the row matrix having m elements which is a first order combination of a row matrix which is the m-th row of the matrix (T^(G).sbsp.j^(-G).sbsp.i ⊕T^(H).sbsp.j^(-H).sbsp.i)⁻¹ selected by a control circuit 52, is calculated at the above inner product operation circuit 51 according to the combination of i and j supplied from a memory device 53.

Description will now be given on a conventional memory device 62 shown in FIG. 11. In FIG. 11, the memory device 62 stores all the combinations of each of the i and j in the matrices M_(k). Furthermore, the memory device 62 is controlled by a control circuit 60 which selects a matrix according to the values of the i and j, and a control circuit 61 which successively selects and produces each row matrix formed from the m-th rows of the matrices M_(k). In addition, a conventional inner product operation circuit 59 calculates the inner product between the output T^(-G).sbsp.i S₁ ⊕T^(-H).sbsp.i S₂ of the adder 49, and the output of the memory device 62. Accordingly, the memory capacity of the memory device 62 is larger than that of the memory device 53, and the number of peripheral circuits of the memory device 62 is large.

Returning to the description of the fifth embodiment of the invention, the serial output of each element a"₁, a"₂, . . . , a"_(m) of the vector W"_(j) (W"_(j) =Y·W_(j) where Y is an m by m matrix) obtained from the inner product operation circuit 51, is subjected to a serial-to-parallel conversion at a shift register 54 shown in FIG. 10. Furthermore, the output thus converted at the shift register 54 is linearly transformed (Y⁻¹. W"_(j)) at a linear transformation circuit 55, and therefore, the information vector W_(j) is obtained. This information vector W_(j) is multiplied with T^(G).sbsp.j^(-G).sbsp.i at a multiplying circuit 56 which is similar to that shown in FIG. 6, where the matrix multiplication is controlled according to the number of clock pulses. The resulting output of the multiplying circuit 56 is further supplied to an adder 57 wherein T^(-G).sbsp.i ·S₁ (=W_(i) ⊕T^(G).sbsp.j^(-G).sbsp.i ·W_(j)) supplied from the accumulating circuit 46 is added to the output supplied from the multiplying circuit 56, to calculate the information vector W_(i). The above output information vector W_(i) of the adder 57 and the output information vector W_(j) of the linear transformation circuit 55, are respectively applied to a data selector 58 wherein the information vectors W_(i) and W_(j) are respectively changed over and successively produced as output. These information vectors W_(i) and W_(j) are known to be erroneous information vectors due to the error pointers, and the corrected and restored information vectors W_(i) and W_(j) are respectively obtained from the data selector 58.

The error correcting method used in the block system shown in FIG. 10 can be realized when the unit matrix I and the matrices T^(L), T^(2L), . . . , T.sup.(m-1)L are linearly independent, or when each of the matrices T^(L), T^(2l), . . . , T^(mL) are linearly independent. However, the above method is also realizable in a case described in the following.

In order to simplify the construction so that only the matrix T_(L) is successively multiplied with the vector S₀, a zero vector is applied to the multiplying circuit 50 by turning the parallel input OFF excluding the time when the vector S₀ is initially stored (or when T^(L) ·S₀ is stored). However, when the vector S₀ is applied to the parallel input as it is, the output of the multiplying circuit 50 becomes as follows:

    S.sub.0, (I⊕T.sup.L)·S.sub.0, (I⊕T.sup.L ⊕T.sup.2L)·S.sub.0, . . .

    or T.sup.L ·S.sub.0, (T.sup.L ⊕T.sup.2L)·S.sub.0, (T.sup.L ⊕T.sup.2L ⊕T.sup.3L)·S.sub.0, . . .

Similar to the condition of independence for the above matrices I, T^(L), T^(2L), . . . , the correcting opeartion according to the present invention can be performed when m matrices

    I, (I⊕T.sup.L), (I⊕T.sup.L ⊕T.sup.2L), . . .

    or T.sup.L, (T.sup.L ⊕T.sup.2L), (T.sup.L ⊕T.sup.2L ⊕T.sup.3L), . . .

are linearly independent. In this case, the linear transformation circit 55 must be changed according to these matrices.

A sixth embodiment of an error correcting system according to the present invention will now be described in conjunction with FIGS. 12 through 15. In FIGS. 12 through 15, those parts which are the same as those corresponding parts in FIG. 2 are designated by the like reference numerals, and their descriptions will be omitted.

The generating circuit 12 comprises exclusive-OR circuits 68₁ through 68_(m) and registers 67₁ through 67_(m) as shown in FIG. 13. In addition, the multiplying circuit 13 for multiplying T^(-n-1), comprises exclusive-OR circuits as shown in FIG. 14. FIG. 15 is a circuit diagram showing the construction of the generating circuit 15, and as can be seen from this figure, the generating circuit 15 comprises exclusive-OR circuits 70₁ through 70_(m) and registers 69₁ through 69_(m). The output terminal of the generating circuit 15 is connected to the input terminal 11 (the input/output bus of the memory device which performs the de-interleave operation, in the case of the present embodiment of the invention) through a tri-state gate circuit (tri-state circuit) 63. On the other hand, the output terminal of the generating circuit 15 is connected to a gate circuit 64 through the adder 16. The tri-state circuit 63 is a circuit which is constructed so that a high impedance state can be obtained in addition to the high ("1") and low ("0") states. The adder 16 can be realized from only the exclusive-OR circuits 68₁ through 68_(m), that is, from a circuit excluding the registers 67₁ through 67_(m) in the circuit shown in FIG. 13. The adder 16 adds S'₁ which is a vector in GF(2) having m elements, and T^(i-n-1) ·S₁, to calculate the vector S₀.

In FIG. 12, when tri-state circuits 63 and 66 are put into high impedance states, and vectors W₁, W₂, . . . , W_(n), P, Q reproduced from a recording medium are successively applied to these tri-state circuits 63 and 66 which are in high impedance states, S'₁ and T^(i-n-1) ·S'₂ are respectively calculated and obtained from the generating circuits 12 and 15. The adder 16 calculates and produces the vector S₀ as described above, and this vector S₀ thus produced is supplied to a multiplying circuit 65 when the gate circuit 64 comprising m AND gates is closed.

The multiplying circuit 65 is a circuit which repetitively multiplies T^(L), and stores the vector S₀ when one first clock pulse is applied thereto. The gate circuit 64 is then opened so that the output of the gate circuit 64 becomes a zero vector φ in which all the m elements become zero. Furthermore, one matrix M_(kd) is selected and produced under the control of the control circuit 25 according to the values of i and j, by the memory device 26 (a memory device constructed from a decoding circuit having a ROM device or a gating circuit) which has (n-1) kinds of row matrices M_(kd) which are to be used upon correcting operation stored therein, where k=1, - - - , n-1. Moreover, when a total of (m-1) clock pulses are further and successively applied to the multiplying circuit 65, ##EQU25## are respectively supplied to both input terminals of the inner product operation circuit 27.

The inner product operation circuit 27 is a circuit for calculating the inner product between the row matrices M_(kd) supplied from the memory device 26 and the column vectors S₀, T^(L) ·S₀, . . . , T.sup.(m-1)L ·S₀ supplied from the multiplying circuit 65, and has a construction similar to that shown in FIG. 4. Accordingly, the linearly transformed W"_(j) (=₀ T'·W_(j)) is serially produced from the inner product operation circuit 27.

The reproduced information vector W_(i) which is calculated and produced from the adder 23 is supplied to the input terminal 11 through a tri-state circuit 66, since the tri-state circuit 66 is put into an operational state from a high impedance state. Accordingly, the above reproduced information vector W_(i) is written into an address location corresponding to that of the original, of a memory device (not shown) which is connected to the input terminal 11. Next, the generating circuit 12 is cleared, and as a result, the output W_(j) of the linear transformation circuit 31 is produced as the output of the adder 23. This information vector W_(j) is written into the original address location within the memory device through the tri-state circuit 66, in a similar manner as in the case of the above information vector W_(i).

Further, in the error correcting system according to the present invention shown in FIG. 12, when only one erroneous word exists, S'₁ describes this one erroneous word as it is, that is, S'₁ =W_(i). Hence, when the linear transformation circuit 31 is cleared, the write-in into the original address location within the memory device can similarly be performed. Moreover, when one word and P of W₁ through W_(n) are in error, (T^(i-n-1) ·S'₂ =W_(i)) is written into the memory device by putting the tri-state circuit 63 into an operational state, since the generating circuit 15 calculates the one erroneous word.

The correcting operation can be performed even when the gate circuit 64 which controls the output S₀ is eliminated, in a case where the linear transformation circuit 31 is changed accordingly. That is, the output of the multiplying circuit 65 successively becomes as follows, when the gate circuit 64 is eliminated.

    S.sub.0, (I⊕T.sup.L)·S.sub.0, (I⊕T.sup.L ⊕T.sup.2L)·S.sub.0, . . . , (I⊕T.sup.L ⊕T.sup.2L ⊕. . . ⊕T.sup.(M-1)L)·S.sub.0

Accordingly, when m m by m matrices I, I⊕T^(L), . . . , I⊕T^(L) ⊕ . . . ⊕T.sup.(m-1)L are linearly independent from each other, the above I, I⊕T^(L), . . . , I⊕T^(L) ⊕ . . . ⊕T.sup.(m-1)L can be used instead of T^(L1), T^(L2), . . . , T^(Lm) described in conjunction with equations (21) through (28). In this case, when the matrix used instead of the above ₀ T' is designated by ₀ T", the linear transformation circuit 31 can accordingly be changed to multiply ₀ T"⁻¹ instead of ₀ T'⁻¹.

Next, a seventh embodiment of an error correcting system will be described in conjunction with FIG. 16. In FIG. 16, those parts which are the same as those corresponding parts in FIG. 5 will be designated by the like reference numerals, and their description will be omitted.

In the present embodiment of the invention, the information vectors respectively comprise fourteen bits, and eight vectors, that is, six information vectors W₁ through W₆ and two error cerrecting vectors P and Q, are considered as one block. Upon reproduction of a recording medium in which the eight element vectors are dispersed according to a predetermined rule in terms of vectors and recorded, the above detected dispersion vectors are written into a memory device together with error pointers which indicate the state of said dispersion vectors, that is, whether the vectors are in error or not. After the de-interleave operation is performed to restore the vector column into the original order, the double error correcting operation of adjacent codes is performed by use of the error pointers which indicate which vectors are in error, when two information vectors W_(i) and W_(j) within one block are detected as being in error.

A multiplying circuit 27a is a circuit for multiplying T⁻⁷, and comprises seven exlusive-OR circuits, for example. Since the linear transformation matrix T is a companion matrix of the polynomial x¹⁴ +x⁸ +1 as described above, T⁻⁷ can be described by the following. ##EQU26## Furthermore, a data selector 72 selectively controls one of the outputs of the generating circuit 12 and the multiplying circuit 13a. In addition, the data selector 72 is also capable of performing strobe control, and when the strobe is ON, the selected input is produced as output, and a zero vector is produced as output when the strobe is OFF.

A tri-state circuit 73 controls the output of the generating circuit 15, and a tri-state circuit 74 controls the output of a shift register 30a. Row matrices M₁₈, M₂₈, M₃₈, M₄₈, and M₅₈ respectively having fourteen elements, which are the eighth rows of the fourteen by fourteen matrices M₁ through M₅, are stored in a memory device 26b, and one of the row matrices M₁₈ through M₅₈ is selected and produced by a control circuit 25a according to the values of I and j.

When the vectors W₁ through W₆ and P and Q which are reproduced from the recording medium are successively applied to the input terminal 11, S₁ which is equal to (W_(i) ⊕W_(j)) is produced. On the other hand, when the strobe is ON in the data selector 72, the output of the multiplying circuit 13a is selectively produced. Thus, the transformed S'₂ which is described by the following equation, is supplied to a generating circuit 15a.

    T.sup.-7 ·S'.sub.2 =T.sup.-i ·W.sub.i ⊕T.sup.-j ·W.sub.j

Next, the strobe of the data selector 72 is turned OFF, and (i-1) clock pulses are applied to the generating circuit 15a. Therefore, T^(i-8) ·S'₂ is calculated and produced from the generating circuit 15a. Thus the following equation is obtained.

    T.sup.i-8 ·S'.sub.2 =T.sup.-1 ·W.sub.i ⊕T.sup.i-1-j ·W.sub.j

Then, the strobe of the data selector 72 is turned ON, and the output of the generating circuit 12 is selected. Accordingly, when one clock pulse is applied to the generating circuit 15a, S₀ is calculated by the generating circuit 15a as shown in the following equation.

    S'.sub.1 ⊕T·T.sup.i-8 ·S'.sub.2 =S'.sub.1 ⊕T.sup.i-7 ·S'.sub.2 =S.sub.0

A row matrix M_(k8) respective of the values of i and j is selected by the control circuit 25a, and the strobe of the data selector 72 is turned OFF. Thirteen clock pulses are further successively applied to the generating circuit 15a. Therefore, the output of the generating circuit 15a successively becomes S₀, T·S₀, T² ·S₀ - - - , T¹³ ·S₀, and these outputs are supplied to the inner product operation circuit 27a. The inner product operation circuit 27a is constructed in a similar manner as the above described inner product operation circuit 27, and calculates the inner product between the column vector supplied from the generating circuit 15a and the row matrix M_(k8) supplied from the memory device 26b. Each element a'₁ through a'₁₄ of the vector W'_(j) is successively and serially produced as output from the inner product operation circuit 27a as shown above with respect to the equation (24), according to the number of clock pulses (zero to thirteen) supplied to the generating circuit 15a. These serial output a'₁ through a'₁₄ are supplied to the shift register 30a, and undergo serial-to-parallel conversion.

In the present embodiment of the invention, the matrix _(l) T' in equation (26) becomes ₈ T', since the above companion matrix T and the row matrices M₁₈ through M₅₈ are selected. Thus, ₈ T' can be described by the following. ##EQU27## That is,

    W.sub.j '=.sub.8 T'·W.sub.j

Accordingly,

    W.sub.j '=.sub.8 T'.sup.-1 ·W.sub.j

and the vector W_(j) can be determined. However, the above ₈ T'⁻¹ can also be simplified as in the case of ₈ T'. The linear transformation performed in this case is similar to that performed in the above second embodiment of the invention where in the order of fourteen elements are simply interchanged. Accordingly, the linear transformation from W'_(j) to W_(j) is simply performed by interchanging the order of the outputs of the shift register 30a, and supplying these interchanged outputs to the tri-state circuit 74.

The vector W_(j) thus calculated, is applied to the input terminal 11 under the control performed by the tri-state circuit 74, and then written into an original address location of the memory device where the vector W_(j) should originally be stored. Furthermore, the calculated vector W_(j) is simultaneously applied to the generating circuit 12. Hence, when one clock pulse is applied to the generating circuit 12, the generating circuit 12 performs the following operation to calculate the information vector W_(i).

    S'.sub.1 ⊕W.sub.j =W.sub.i ⊕W.sub.j ⊕W.sub.j =W.sub.i

This information vector W_(i) thus calculated, is supplied to the input terminal 11 under the control of a tri-state circuit 71, and then written into an original address location of the memory device where the vector W_(i) should originally be stored. In addition, in cases where only one word is in error or when one word and the error correcting vector P of the vectors W₁ through W₆ are in error, the correcting operation can be performed in a manner similar to that performed by the block system shown in FIG. 12.

Thus, in the above described sixth and seventh embodiments of the invention, the information vectors read out from the memory device are always corrected vectors, since the corrected information vectors W_(i) and W_(i) are stored back into the original address locations within the memory device.

Accordingly, in these sixth and seventh embodiments of the invention, the registers 14 and 17 of the conventional system shown in FIG. 1 are not required, and can be eliminated. Moreover, the circuit used for calculating the partial syndrome S'₂ can be used in common with the circuit which multiplies the transformation matrix T.

Further, this invention is not limited to these embodiments but various variations and modifications may be made without departing from the scope of the invention. 

What is claimed is:
 1. A double error correcting system in a digital signal reproducing apparatus, which transmits information in units of blocks where one block consists of a total of (n+2) vectors, said total of (n+2) vectors being formed from n (n is an integer greater than zero) information vectors W₁ through W_(n), each having m (m is an integer greater than zero) elements in GF(2), where GF(2) represents a finite field consisting of two elements, and two error correcting column vectors P and Q produced by use of said information vectors W₁ through W_(n) and an m by m regular linear transformation matrix T which is linearly independent of a unit matrix I, and said correcting system performing a correcting operation when two erroneous vectors W_(i) and W_(j) are detected within one block by use of error pointers which indicate which vectors are in error upon reception of the transmitted information, where it is defined that an m number of m by m matrices T^(L1), T^(L2), . . . T^(Lm) are linearly independent of each other with respect to said transformation matrix T and m integers L₁, L₂, . . . , L_(m) which constitute an arithmetical progression, and that M_(k) is an m by m matrix (I⊕T^(i-j))⁻¹ or (T^(G).sbsp.j^(-G).sbsp.i ⊕T^(H).sbsp.j^(-H).sbsp.i)⁻¹ where symbols "⊕" represent vector addition on GF(2) and k described by an equation k=f(i, j) can assume a plurality of values according to the combination of the values of i and j, and further, that said matrix M_(k) has m row matrices M_(k1) through M_(km) respectively having m elements, said double error correcting system comprising:an input terminal for receiving said information vectors W₁ through W_(n) and said error correcting vectors P and Q; memory means for storing a plurality of row matrices M_(kd) which are formed from certain predetermined row matrices of said row matrices M_(k1) through M_(km) according to each value of k, for selectively reading out said row matrices M_(kd) according to the value of k; generating circuit means responsive to said information vectors W₁ through W_(n) and said error correcting vectors P and Q received at said input terminal, said generating circuit means generating a column vector S₀ which is used for correcting where S₀ =S₁ ⊕T^(i-n-1) ·S₂ or T^(-G).sbsp.i ·S₁ ⊕T^(-H).sbsp.i ·S₂, said correction producing partial syndromes S₁ and S₂ from said information vectors W₁ through W_(n) and said error correcting vectors P and Q by use of predetermined producing equations, to obtain W_(j) =M_(k) ·(S₁ ⊕T^(i-n-1) ·S₂) or W_(j) =M_(k) (T^(-G).sbsp.i ·S₁ ⊕T^(-H).sbsp.i ·S₂); multiplying circuit means responsive to the column vector S₀ generating from said generating circuit means, for successively multiplying T^(L1), T^(L2), . . . , T^(Lm) to transform column vectors T^(L1) ·S₀, T^(L2) ·S₀, . . . , T^(Lm) ·S₀ ; operation circuit means responsive to the output of said memory means and said multiplying circuit, for successively performing a mathematical operation described by M_(kd) ·T^(L1) ·S₀, M_(kd) ·T^(L2) ·S₀, . . . , M_(kd) ·T^(Lm) ·S₀, to serially produce vectors having m elements; and storage circuit means responsive to the serial output of said operation circuit means, for temporarily storing said vectors having m elements which are supplied from said operation circuit means, to perform an m by m linear transformation on said vectors received from said operation circuit means.
 2. A double error correcting system as claimed in claim 1 in which said two error correcting vectors P and Q are produced according to the equations, ##EQU28## where symbols "⊕" indicate vector addition in GF(2), and said partial syndromes S₁ and S₂ are produced according to the equations, ##EQU29##
 3. A double error correcting system as claimed in claim 1 in which said two error correcting vectors P and Q are produced according to the equations, ##EQU30## where symbols "⊕" indicate vector addition in GF(2), and said partial syndromes S₁ and S₂ are produced according to the equations, ##EQU31## by eliminating vectors W_(i) and W_(j) which have been indicated as being in error by the error pointers, where symbols "φ" indicate zero vectors.
 4. A double error correcting system in a digital signal reproducing apparatus, which transmits information in units of blocks where one block consists of a total of (n+2) vectors, said total of (n+2) vectors being formed from n (n is an integer greater than zero) information vectors W₁ through W_(n) each having m (m is an integer greater than zero) elements in GF(2), where GF(2) represents a finite field consisting of two elements, and two error correcting column vectors P and Q produced by use of said information vectors W₁ through W_(n) and a companion matrix T of a polynominal 1+g₁ x+g₂ x² + . . . +g_(m-1) x^(m-1) +x^(m) and performs a correcting operation when two erroneous vectors W_(i) and W_(j) are detected within one block by use of error pointers which indicate which vectors are in error upon reception of the transmitted information, where it is defined that an m number of m by m matrices T and T², T³, . . . , T^(m) or I, T, T², . . . , T^(m-1) are linearly independent of each other with respect to said companion matrix T, and that M_(k) is an m by m matrix (I⊕T^(i-j))⁻¹ or (T^(G).sbsp.j^(-G).sbsp.i ⊕T^(H).sbsp.j^(-H).sbsp.i)⁻¹ where symbols "⊕" represent vector addition in GF(2) and k described by an equation k=f (i,j) can assume a plurality of values according to the combination of the values of i and j, and further, that said matrix M_(k) has m row matrices M_(k1) through M_(km) respectively having m elements, said double error correcting system comprising:an input terminal for receiving said information vectors W₁ through W_(n) and said error correcting vectors P and Q; memory means for storing a plurality of row matrices M_(kd) which are formed from certain predetermined row matrices of said row matrices M_(k1) through M_(km) according to each value of k, for selectively reading out said row matrices M_(kd) according to the value of k; generating circuit means responsive to said information vectors W₁ through W_(n) and said error correcting vectors P and Q received at said input terminal, for generating a column vector S₀ which is used for the correcting operation where S₀ =S₁ ⊕T^(i-n-1) ·S₂ or T^(-G).sbsp.i ·S₁ ⊕T^(-H).sbsp.i ·S₂, by producing partial syndromes S₁ and S₂ from said information vectors W₁ through W_(n) and said error correcting vectors P and Q by use of predetermined producing equations, to obtain W_(j) =M_(k) (S₁ ⊕T^(i-n-1) ·S₂) or W_(j) =M_(k) ·(T^(-G).sbsp.i ·S₁ ⊕T^(-H).sbsp.i ·S₂); multiplying circuit means responsive to the column vector S₀ supplied from said generating circuit means, for successively calculating to produce T·S₀, T² ·S₀, . . . T^(m) ·S₀ or S₀, T·S₀, . . . , T^(m-1) ·S₀ by repetitively multiplying said companion matrix T; operation circuit means responsive to the outputs of said memory means and said multiplying circuit means, for successively performing a mathematical operation described by

    M.sub.kd ·T·S.sub.0, M.sub.kd ·T.sup.2 ·S.sub.0, . . . , M.sub.kd ·T.sup.m ·S.sub.0

    or M.sub.kd ·S.sub.0, M.sub.kd ·T·S.sub.0, . . . , M.sub.kd ·T.sup.m-1 ·S.sub.0

to serially produce vectors having m elements; and storage circuit means responsive to the serial output of said operation circuit means, for temporarily storing said vectors having m elements which are supplied from said operation circuit means, to perform an m by m linear transformation on said vectors thus supplied from said operation circuit.
 5. A double error correcting system as claimed in claim 4 in which said two error correcting vectors P and Q are produced according to the equations, ##EQU32## where symbols "⊕" indicate vector addition in GF(2), and said partial syndromes S₁ and S₂ are produced according to the equations,

    S.sub.1 =W.sub.1 ⊕W.sub.2 ⊕ . . . ⊕W.sub.n ⊕P

    S.sub.2 =T.sup.n ·W.sub.1 ⊕T.sup.n-1 ·W.sub.2 ⊕ . . . ⊕T·W.sub.n ⊕Q

or

    S.sub.1 =T.sup.G.sbsp.1 ·W.sub.1 ⊕T.sup.G.sbsp.2 ·W.sub.2 ⊕ . . . ⊕T.sup.G.sbsp.n ·W.sub.n ⊕P

    S.sub.2 =T.sup.H.sbsp.1 ·W.sub.1 ⊕T.sup.H.sbsp.2 ·S.sub.2 ⊕ . . . ⊕T.sup.H.sbsp.n ·W.sub.n ⊕Q.


6. A double error correcting system as claimed in claim 4 in which said two error correcting vectors P and Q are produced according to the equations, ##EQU33## where symbols "⊕" indicate vector addition in GF(2), and said partial syndromes S₁ and S₂ are produced according to the equations,

    S.sub.1 =W.sub.1 ⊕ . . . W.sub.i-1 ⊕φ⊕W.sub.i+1 ⊕ . . . ⊕W.sub.j-1 ⊕φ⊕W.sub.j+1 ⊕ . . . ⊕W.sub.n ⊕P

    S.sub.2 =T.sup.n ·W.sub.1 ⊕ . . . ⊕T.sup.n-i+2 ·W.sub.i-1 ⊕T.sup.n-i ·W.sub.i+1 ⊕ . . . ⊕T.sup.n-j+2 ·W.sub.j-1 ⊕φ⊕T.sup.n-j ·W.sub.j+1 ⊕ . . . ⊕T·W.sub.n ⊕Q

or

    S.sub.1 =T.sup.G.sbsp.1 ·W.sub.1 ⊕ . . . ⊕T.sup.G.sbsp.i-1 ·W.sub.i-1 ⊕φ⊕T.sup.G.sbsp.i+1 ·W.sub.i+1 ⊕ . . . ⊕T.sup.G.sbsp.j-1 ·W.sub.j-1 ⊕T.sup.G.sbsp.j+1 ·W.sub.j+1 ⊕ . . . ⊕T.sup.G.sbsp.n ·W.sub.n ⊕P

    S.sub.2 =T.sup.H.sbsp.1 ·W.sub.1 ⊕ . . . ⊕T.sup.H.sbsp.i-1 ·W.sub.i-1 ⊕φ⊕T.sup.H.sbsp.i+1 ·W.sub.i+1 . . . ⊕T.sup.H.sbsp.j-1 ·W.sub.j-1 ⊕φ⊕T.sup.H.sbsp.j+1 ·W.sub.j+1 ⊕ . . . ⊕T.sup.H.sbsp.n ·W.sub.n ⊕Q

by eliminating vectors W_(i) and W_(j) which have been indicated as being in error by the error pointers, where symbols "φ" indicate zero vectors.
 7. A double error correcting system as claimed in claim 4 in which said generating circuit means comprise a first circuit responsive to said vectors W₁ through W_(n) and P and Q received from said input terminal for producing said partial syndrome S₁, a second circuit means also responsive to said vectors W₁ through W_(n) and P and Q received from said input terminal for multiplying T^(-n+1) thereto, and data selector means responsive to outputs of said first and second circuit means for successively changing over to produce the output of said second circuit means, the output of said first circuit means, and a zero vector.
 8. A double error correcting system as claimed in claim 4 in which said information vectors W₁ through W_(n) respectively have fourteen elements where n=6, and said companion matrix T is a companion matrix of a polynominal 1+x⁸ +x¹⁴.
 9. A double error correcting system in a digital signal reproducing apparatus for reproducing a recording medium, said recording medium being recorded in units of vectors wherein (n+2) element vectors (n is an integer greater than zero) of one block are dispersed according to a predetermined rule, said one block consisting of a total of (n+2) vectors formed from n information vectors W₁ through W_(n) each having m (m is an integer greater than zero) elements obtained according to a predetermined rule, and two error correcting vectors P and Q produced by use of said information vectors W₁ through W_(n) and equations

    P=W.sub.1 ⊕W.sub.2 ⊕ . . . ⊕W.sub.n

    Q=T.sup.n ·W.sub.1 ⊕T.sup.n-1 ·W.sub.2 ⊕ . . . ⊕T·W.sub.n

where symbols "⊕" indicate vector additions in GF(2), where GF(2) represents a finite field having two elements, and T indicates an m by m regular linear transformation matrix in GF(2), where it is assumed that the information vector having m elements is one of a digital signal column obtained by sampling and quantizing analog information signals every predetermined period, said digital signal reproducing apparatus writing in the detected dispersed digital signals into a memory circuit together with error pointers which indicate whether a vector is in error or not, to perform a correcting operation when two erroneous vectors W_(i) and W_(j) are detected within one block by use of said error pointers after an operation is performed to restore the order of the vector column into the original order upon reproduction of said recording medium, and where it is defined that an m number of m by m matrices T^(L1), T^(L2), . . . , T^(Lm) are linearly independent from each other with respect to said transformation matrix T and m integers L₁, L₂, . . . , L_(m) which construct an arithmetical progression, and that M_(k) are (n-1) m by m matrices (I⊕T^(i-j))⁻¹ where k=i-j=1, . . . , n-1, and further, that said matrices M_(k) have m row matrices M_(k1) through M_(km) respectively having elements, said double error correcting system comprising: an input terminal for receiving said information vectors W₁ through W_(n) and said error correcting vectors P and Q; memory means for pre-storing each element of (n-1) row matrices M_(1d) through M.sub.(n-1)d which are formed from certain predetermined row matrices of said row matrices M_(k1) through M_(km) for selectively reading out said row matrices M_(1d) through M.sub.(n-1)d ; generating circuit means responsive to said information vectors W₁ through W_(n) and said error correcting vectors P and Q received through said input terminal, for generating a column vector S₀ which is used for the correcting operation where S₀ =S₁ ⊕T^(i-n-1) ·S₂, by producing partial syndromes S₁ and S₂ from said information vectors W₁ through W_(n) and said error correcting vectors P and Q by use of equations

    S.sub.1 W.sub.1 ⊕W.sub.1 ⊕ . . . W.sub.n ⊕P

    S.sub.1 =T.sup.n ·W.sub.1 ⊕T.sup.n-1 ·W.sub.2 ⊕ . . . ⊕T·W.sub.n ⊕Q

or by eliminating vectors W₁ and W_(j) which are indicated by said error pointers as being in error to add zero vectors in which all the m elements are zero instead of W_(i), W_(j), T^(n+1-j) ·W_(i), and T^(n+1-j) ·W_(j) in the above equations, to obtain W_(j) =M_(k), (S₁ ⊕T^(i-n-1) ·S₂); multiplying circuit means responsive to the column vector S₀ generated from said generating circuit means, for successively multiplying T^(L1), T^(L2), . . . , T^(Lm) to produce transformed column vectors T^(L1), S₀, T^(L2), S₀, . . . , T^(Lm) ·S₀ ; operation circuit means responsive to the outputs of said memory means and said multiplying circuit means, for successively performing a mathematical operation described by M_(kd), T^(L1) ·S₀, M_(kd) ·T^(L2) ·S₀, . . . , M_(kd) ·T^(Lm) ·S₀, to serially produce vectors having m elements; linear transformation circuit means responsive to the output of said operation circuit means, for obtaining the vector W_(j) having m elements by linearly transforming the output of said operation circuit means according to a linear transformation rule determined by certain row matrices of the matrices M_(kd) ; and write-in means for writing said vector W_(j) having m elements into the original location within said memory means wherein W_(j) was stored, and also adding said partial syndrome S₁ (S₁ =W_(i) ⊕W_(j)) and W_(j) to obtain the information vector W_(i) to write said W_(i) into the original location within said memory means wherein W_(i) was stored. 